Enforcer - Efficient Failure Injection
نویسندگان
چکیده
Non-determinism of the thread schedule is a well-known problem in concurrent programming. However, other sources of non-determinism exist which cannot be controlled by an application, such as network availability. Testing a program with its communication resources being unavailable is difficult, as it requires a change on the host system, which has to be coordinated with the test suite. Essentially, each interaction of the application with the environment can result in a failure. Only some of these failures can be tested. Our work identifies such potential failures and develops a strategy for testing all relevant outcomes of such actions. Our tool, Enforcer, combines the structure of unit tests, coverage information, and fault injection. By taking advantage of a unit test infrastructure, performance can be improved by orders of magnitude compared to previous approaches. Our tool has been tested on several real-world programs, where it found faults without requiring extra test code.
منابع مشابه
Testing I/O Failures with Enforcer
Testing application behavior in the presence of I/O failures is extremely difficult. The resources used for testing usually work without failure. Failures typically cannot be initiated on the test suite level and are usually not tested sufficiently. Essentially, each interaction of the application with the environment can result in a failure, making failures hard to test. The Enforcer tool iden...
متن کاملExhaustive Testing of Exception Handlers with Enforcer
Testing application behavior in the presence of I/O failures is extremely difficult. The resources used for testing usually work without failure. Failures typically cannot be initiated on the test suite level and are usually not tested sufficiently. Essentially, each interaction of the application with the environment can result in a failure. The Enforcer tool identifies such potential failures...
متن کاملTesting Exceptions with Enforcer
Java library calls, for instance for network I/O, may result in exceptions. Exhaustive testing of exceptions is very difficult. Enforcer automatically tests all relevant outcomes of actions that may cause an exception, and combines the structure of unit tests with coverage information and fault injection. Enforcer supports Java 1.5–1.6 and JUnit 3.8.1.
متن کاملBerlin-Poznań Seminar on Discrete Mathematics
Małgosia Bednarska-Bzdȩga Degree and Small-graph Avoider-Enforcer games I will talk on two versions of biased Avoider and Enforcer games played on a hypergraph H = (V,E). In the strict Avoider-Enforcer (a : f) game two players, Avoider and Enforcer, claim in turns previously unselected elements of V , until all vertices are occupied. In each turn Avoider selects exactly a elements, and Enforcer...
متن کاملAvoider-Enforcer: The rules of the game
An Avoider-Enforcer game is played by two players, called Avoider and Enforcer, on a hypergraph F ⊆ 2 . The players claim previously unoccupied elements of the board X in turns. Enforcer wins if Avoider claims all vertices of some element of F , otherwise Avoider wins. In a more general version of the game a bias b is introduced to level up the players’ chances of winning; Avoider claims one el...
متن کامل